An embodiment relates generally to controller area network systems within a vehicle.
A controller-area network (CAN) is a vehicle bus standard intended to allow electronic control units (ECUs) and other devices to communicate with one another without a central or host computer. Vehicle systems and subsystems have numerous ECUs that control actuators or receive vehicle operation data from sensing devices. The CAN system is an asynchronous broadcast serial bus which communicates messages serially. Therefore, only one message is communicated on a communication-bus at one instance of time. When a message is ready to be transmitted onto the communication bus, the bus controller controls the message transfer on the bus. If more than one message transmission is initiated simultaneously by multiple transmitters, the more dominant message is transmitted. This is known as an arbitration process. A message with a highest priority will dominate the arbitration and a message transmitting at the lower priority will sense this and wait.
In various scenarios, messages relating to vehicle operation may be processed by different nodes in succession within a CAN system. In such a scenario, the messages are provided to a first node and the messages are processed at different instances of time. When the processing for a first message is completed at a respective node, it is transmitted along the communication bus to a next node for additional processing. Meanwhile, the next message is processed in the first node, and is thereafter successively transmitted along the communication bus to the next node for additional processing. This process continues for successive messages. Due to inherent delays in processing messages, or contention in the communication bus, messages may be lost in the communication process since there is no central or host computer to assure that each of the messages are maintained and not dropped. In such an instance, the lost message may be overwritten by another message. Therefore, there is a need to assure that each message that may be lost to due to jitter, asynchronous clocks, and finite bus controller buffer sizes, are properly maintained and processed within the CAN system.